Check matrix generating device, check matrix generating method, encoder, transmitter, decoder, and receiver

ABSTRACT

When arranging J cyclic permutation matrices I(p j,l ) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p j,l ) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a quasi-cyclic matrix generating unit  31  configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(p j,l ) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p j,l ) mod p are “1”s, and other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices I(p j,l ) arranged at, e.g., the 1st row differ from one another.

FIELD OF THE INVENTION

The present invention relates to an encoding technology for use in digital communications. More particularly, it relates to a check matrix generating device for and a check matrix generating method of generating a parity check matrix used for LDPC (Low-Density Parity Check) codes, an encoder for and a transmitter for encoding predetermined information bits by using a parity check matrix, and a decoder for and a receiver for decoding predetermined information bits by using a parity check matrix.

BACKGROUND OF THE INVENTION

Hereafter, a conventional communications system which employs an LDPC code will be explained as an encoding system.

Hereafter, it is assumed that the conventional communications system uses a quasi-cyclic (QC: Quasi-Cyclic) code as an example of an LDPC code (refer to the following nonpatent reference 1).

First, a flow of an encoding process and a decoding process which are carried out by the conventional communications system will be explained briefly.

An LDPC encoder mounted in a communication device on a transmit side (referred to as a “transmitter” from here on) generates a parity check matrix H (which will be mentioned below in detail).

The LDPC encoder also generates, for example, a generator matrix G with K rows and N columns (K: an information length, N: a codeword length).

In this case, when the parity check matrix for LDPC is expressed as H (with M rows and N columns), the generator matrix G satisfies GH^(T)=0 (T denotes the transposed matrix).

When receiving a message (m₁, m₂, . . . , m_(K)) having the information length K, the LDPC encoder generates a codeword C from the message (m₁, m₂, . . . m_(K)) by using the generator matrix G generated previously, as shown in the following equation (1). In this case, H(c₁, c₂, . . . , c_(N))^(T)=0 is assumed.

$\begin{matrix} \begin{matrix} {C = {\left( {m_{1},m_{2},\ldots \mspace{14mu},m_{K}} \right)G}} \\ {= \left( {c_{1},c_{2},\ldots \mspace{14mu},c_{N}} \right)} \end{matrix} & (1) \end{matrix}$

After the LDPC encoder generates the codeword C, a modulator of the transmitter carries out digital modulation of the codeword C by using a predetermined modulation method (e.g., BPSK (Binary Phase Shift Keying), QPSK (Quadrature Phase Shift Keying), or multiple value QAM (Quadrature Amplitude Modulation)), and transmits the modulated signal x=(x₁, x₂, . . . , x_(N)) to a communication device on a receive side (referred to as a “receiver” from here on).

It is assumed that in an error occurs in the modulated signal x=(x₁, x₂, . . . , x_(N)) transmitted from the transmitter during transmission through the radio channel, and the signal including the error is received by the receiver.

When receiving the modulated signal y=(y₁, y₂, . . . , y_(N)) including the error, the demodulator of the receiver performs digital demodulation according to the modulation method, such as BPSK, QPSK, or multiple value QAM, on the modulated signal y=(y₁, y₂, . . . , y_(N)).

When receiving the demodulated result of the demodulator, the LDPC decoder of the receiver performs iterative decoding according to the “sum-product algorithm” on the demodulated result so as to decode the demodulated result into the message (m₁, m₂, . . . , m_(K)) having the information length K, and then outputs the message (m₁, m₂, . . . , m_(K)).

Hereafter, the parity check matrix for LDPC code will be explained concretely.

For example, in the following nonpatent reference 1, a parity check matrix H_(QC) for QC codes as shown in FIG. 6 is proposed as a parity check matrix for LDPC code.

The parity check matrix H_(QC) for QC code as shown in FIG. 6 is the one in which cyclic permutation matrices (p=5) each with five rows and five columns are arranged in a vertical direction (J=3) and in a horizontal direction (L=5).

Generally, a parity check matrix H_(QC) for a (J,L)-QC code with M (=pJ) rows and N (=pL) columns can be defined as shown in the following equation (2).

[Equation  1] $\begin{matrix} {{H_{{QC}_{i}} = \begin{bmatrix} {I\left( p_{0,0} \right)} & {I\left( p_{0,1} \right)} & \cdots & {I\left( p_{0,{L - 1}} \right)} \\ {I\left( p_{1,0} \right)} & {I\left( p_{1,1} \right)} & \cdots & {I\left( p_{0,{L - 1}} \right)} \\ \vdots & \vdots & \ddots & \vdots \\ {I\left( p_{{J - 1},0} \right)} & {I\left( p_{{J - 1},1} \right)} & \cdots & {I\left( p_{0,{L - 1}} \right)} \end{bmatrix}}{{{\text{Example:}p} = 5},{{I(0)} = {\begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} \cdot}}}} & (2) \end{matrix}$

where p is an odd prime number, L is the number of cyclic permutation matrices arranged in the horizontal direction (column direction) in the parity check matrix H_(QC), and J is the number of cyclic permutation matrices arranged in the vertical direction (row direction) in the parity check matrix H_(QC).

In each cyclic permutation matrix I(p_(j,l)), at 0≦j≦J−1 and 0≦l≦L−1, matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s.

“A mod B” is a mathematical symbol for calculating the remainder of the division of A by B.

Because a degradation of the performance is typically caused in case in which there exist many loops having a short length when designing an LDPC code, it is necessary to increase the girth and lessen the number of loops (loop 4, loop 6, and so on) having a short length.

FIG. 7 is an explanatory drawing showing an example of the check matrix expressed in a form of a Tanner graph.

In the parity check matrix H with M rows and N columns having two elements {0, 1}, a node corresponding to each column is referred to as a bit node b_(n) (1≦n≦N) (corresponding to ∘ in FIG. 7) and a node corresponding to each row is referred to as a check node c_(m) (1≦m≦M) (corresponding to □ in FIG. 7).

Furthermore, when “1” is located at an intersection of a row and a column of the check matrix, a bipartite graph connecting between the bit node and the check node with a branch is referred to as a Tanner graph.

Each above-mentioned “loop” shows a closed loop starting from a specific node (corresponding to ∘ or □ of FIG. 7) and ending at the node, as shown in FIG. 7.

The above-mentioned “girth” means a minimum loop.

The length of each loop is expressed by the number of branches configuring the closed loop, and each loop is simply expressed as loop 4, loop 6, loop 8, or . . . according to the length of each loop.

The following nonpatent reference 1 shows that the girth g in the parity check matrix H_(QC) for (J,L)-QC LDPC codes falls within a range of “4≦g≦12 (g is an even number)”.

It is easy to prevent the parity check matrix from having a girth g=4, and, in many cases, the parity check matrix has a girth satisfying g≧6.

[Nonpatent reference 1] M. Fossorier “Quasi-Cyclic Low Density Parity Check Code” ISIT2003, pp. 150, Japan, Jun. 29-Jul. 4, 2003.

Because the conventional encoder is configured as mentioned above, a parity check matrix H_(QC) having a girth g falling within a range of “4≦g≦12 (g is a even number)” is generated, while no design method of designing a parity check matrix under the conditions that it satisfies g≧6, g≧8, g≧10, g≧12, or . . . has not been disclosed. A problem is therefore that when designing an LDPC code, it is necessary to make a search using a computer, or the like to generate a parity check matrix H_(QC), and it takes much time to acquire an LDPC code.

A further problem is that because the conventional encoder lacks in extensibility, and also lacks in the regularity among cyclic permutation matrices, the complexity increases at a time when the conventional encoder is implemented, and any evidence that the results of a search using a computer are optimal cannot be established.

The present invention is made in order to solve the above-mentioned problems, and it is therefore an object of the present invention to provide a check matrix generating device, a check matrix generating method, an encoder, a transmitter, a decoder, and a receiver which can easily generate a parity check matrix having good performance and regularity.

DISCLOSURE OF THE INVENTION

In accordance with the present invention, there is provided a check matrix generating device in which a quasi-cyclic matrix generating means configures a regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices arranged at a specific row differ from one another.

According to the present invention, when generating the regular quasi-cyclic matrix, the quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices arranged at a specific row differ from one another. Therefore, the present invention offers an advantage of being able to easily generate a parity check matrix having good performance and regularity.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram showing a transmitter and a receiver in accordance with Embodiment 1 of the present invention;

FIG. 2 is a block diagram showing an LDPC encoder 11 in accordance with Embodiment 1 of the present invention;

FIG. 3 is a block diagram showing the LDPC decoder 22 in accordance with Embodiment 1 of the present invention;

FIG. 4 is a flow chart showing a check matrix generating method in accordance with Embodiment 1 of the present invention;

FIG. 5 is an explanatory drawing showing an example in which a mobile terminal 100 is connected to a base station 200 via a wireless channel;

FIG. 6 is an explanatory drawing showing a parity check matrix for QC code; and

FIG. 7 is an explanatory drawing showing an example of the check matrix expressed in a form of a Tanner graph.

PREFERRED EMBODIMENTS OF THE INVENTION

Hereafter, in order to explain this invention in greater detail, the preferred embodiments of the present invention will be described with reference to the accompanying drawings.

Embodiment 1

FIG. 1 is a block diagram showing a transmitter and a receiver in accordance with Embodiment 1 of the present invention. In the figure, the transmitter 1 is comprised of an LDPC encoder 11 (encoder) and a modulator 12, and is a communication device disposed on a transmit side, for encoding a message (u₁, u₂, . . . , u_(K)) having an information length K and transmitting this message via a channel 3.

The receiver 2 is comprised of a demodulator 21 and an LDPC decoder 22 (decoder), and is a communication device disposed on a receive side, for receiving the modulated signal transmitted from the transmitter 1, and for demodulating the modulated signal to decode the signal into the message (u₁, u₂, . . . , u_(K)) having the information length K.

The LDPC encoder 11 of the transmitter 1 carries out a process of generating a codeword (v₁, v₂, . . . , v_(N)) from the message (u₁, u₂, . . . , u_(K)) having the information length K.

The modulator 12 of the transmitter 1 carries out a process of modulating the codeword (v₁, v₂, . . . , v_(N)) generated by the LDPC encoder 11, and then transmitting the modulated signal (x₁, x₂, . . . , x_(N)) to the receiver 2 via the channel 3. The modulator 12 configures a modulation means.

When receiving the modulated signal (x₁, x₂, . . . , x_(N)) transmitted from the transmitter 1 as a modulated signal (y₁, y₂, . . . , y_(N)) the demodulator 21 of the receiver 2 performs digital demodulation on the modulated signal (y₁, y₂, . . . , v_(N)) and outputs a codeword (v₁, v₂, . . . , v_(N)) which is the demodulated result. The demodulator 21 configures a demodulating means.

The LDPC decoder 22 of the receiver 2 carries out a process of decoding the codeword (v₁, v₂, . . . , v₅) outputted from the demodulator 21 into the message (u₁, u₂, . . . , u_(K)) having the information length K.

FIG. 2 is a block diagram showing the LDPC encoder 11 in accordance with Embodiment 1 of the present invention. In the figure, a check matrix generating device 30 generates a parity check matrix H_(M).

A quasi-cyclic matrix generating unit 31 of the check matrix generating device 30 carries out a process of arranging J cyclic permutation matrices I(p_(j,l)) with p rows and p columns (0≦j≦J−1 and 0≦l≦L−1) in each row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in each column direction so as to generate a regular quasi-cyclic matrix H_(QC) with uniform row and column weights.

In this case, when generating the regular quasi-cyclic matrix H_(QC), the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(p_(j,l)) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and the other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices I(p_(j,l)) arranged in a specific row (e.g. the 1st row) differ from one another. The quasi-cyclic matrix generating unit 31 configures a quasi-cyclic matrix generating means.

A mask matrix generating unit 32 of the check matrix generating device 30 carries out a process of generating a mask matrix Z which can adapt to a plurality of coding rates. The mask matrix generating unit 32 configures a mask matrix generating means.

A masking processing unit 33 of the check matrix generating device 30 carries out a process of converting a specific cyclic permutation matrix I(p_(j,l)) within the regular quasi-cyclic matrix H_(QC) generated by the quasi-cyclic matrix generating unit 31 into a zero matrix by using the mask matrix Z generated by the mask matrix generating unit 32 so as to generate an irregular masked quasi-cyclic matrix M. The masking processing unit 33 configures a masking means.

A parity check matrix generating unit 34 of the check matrix generating device 30 carries out a process of placing the masked quasi-cyclic matrix M generated by the masking processing unit 33 and a matrix in which the cyclic permutation matrices I(p_(j,l)) are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix H_(M) for LDPC code. The parity check matrix generating unit 34 configures a parity check matrix generating means.

A codeword generating unit 35 carries out a process of generating a codeword (v₁, v₂, . . . , v_(N)) from the message (u₁, u₂, . . . , u_(K)) having the information length K by using the parity check matrix H_(M) generated by the parity check matrix generating unit 34. The codeword generating unit 35 configures a codeword generating means.

FIG. 3 is a block diagram showing the LDPC decoder 22 in accordance with Embodiment 1 of the present invention. In the figure, because the same reference numerals as those shown in FIG. 2 denote the same components or like components, the explanation about the components will be omitted hereafter.

A message decoding unit 41 carries out a process of decoding the codeword (v₁, v₂, . . . , v_(N)) outputted from the demodulator 21 into the message (u₁, u₂, . . . , u_(K)) having the information length K by using the parity check matrix H_(M) generated by the parity check matrix generating unit 34. The message decoding unit 41 configures a decoding means.

FIG. 4 is a flow chart showing a check matrix generating method in accordance with Embodiment 1 of the present invention.

Next, the operations of the transmitter and the receiver will be explained.

The check matrix generating device 30 of the LDPC encoder 11 in the transmitter 1 generates a parity check matrix H_(M) with M rows and N columns.

Similarly, the check matrix generating device 30 of the LDPC decoder 22 in the receiver 2 also generates a parity check matrix H_(M) with M rows and N columns.

A generating method of generating the parity check matrix H_(M) in each of the check matrix generating devices 30 will be mentioned below.

When receiving a message u=(u₁, u₂, . . . , u_(K)) having an information length K, the codeword generating unit 35 of the LDPC encoder 11 generates a codeword v=(v₁, v₂, . . . , v_(N)) having a length N by using the parity check matrix H_(M) generated by the check matrix generating device 30, as shown in the following equation (3).

The codeword generating unit 35 carries out a process of encoding information bits without using a generator matrix G (K: information length, N: code word length) which is generated previously, unlike in a case of a conventional example.

v={(v ₁ , v ₂ , . . . , v _(N))∈GF   (2)

(v ₁ , v ₂ , . . . , v _(N))H _(M) ^(T)=0}  (3)

When the LDPC encoder 11 generates the codeword v=(v₁, v₂, . . . , v_(N)), the modulator 12 of the transmitter 1 carries out digital modulation of the codeword v by using a predetermined modulation method (e.g. BPSK, QPSK, or multiple value QAM), and transmits the modulated signal x=(x₁, x₂, . . . , x_(N)) to the receiver 2 via the channel 3.

It is assumed that in an error occurs in the modulated signal x=(x₁, x₂, . . . , x_(N)) transmitted from the transmitter 1 during transmission through the channel 3, and the signal including the error is received by the receiver 2.

When receiving the modulated signal y=(y₁, y₂, . . . , y_(N)) including the error, the demodulator 21 of the receiver 2 performs digital demodulation according to the modulation method, such as BPSK, QPSK, or multiple value QAM, on the modulated signal y=(y₁, y₂, . . . , y_(N)).

When receiving the demodulated result of the demodulator 21, the LDPC decoder 22 of the receiver 2 performs iterative decoding according to the “sum-product algorithm” on the demodulated result so as to decode the demodulated result to generate the message (u₁, u₂, . . . , U_(K)) having the information length K, and then outputs the message (u₁, u₂, . . . , u_(K)).

More specifically, the message decoding unit 41 of the LDPC decoder 22 decodes the codeword (v₁, v₂, . . . , v_(N)) outputted from the demodulator 21 into the message (u₁, u₂, . . . , u_(K)) having the information length K by using the parity check matrix H_(M) generated by the check matrix generating device 30.

Hereafter, a generating method of generating the parity check matrix H_(M) by the check matrix generating device 30 will be explained.

This Embodiment 1 is based on that an irregular (the weight distribution is ununiform) parity check matrix is generated, and an LDGM (Low Density Generation Matrix) structure is adopted as the structure of the irregular parity check matrix.

In FIGS. 2 and 3, the example in which the check matrix generating device 30 is built in each of the LDPC encoder 11 and the LDPC decoder 22 is shown, though the check matrix generating device 30 can be alternatively disposed outside the LDPC encoder 11 and the LDPC decoder 22 and the LDPC encoder 11 and the LDPC decoder 22 can store the parity check matrix H_(M) generated by the check matrix generating device 30.

The quasi-cyclic matrix generating unit 31 arranges J cyclic permutation matrices I(p_(j,l)) with p rows and p columns in each row direction and also arranges L cyclic permutation matrices I(p_(j,l)) with p rows and p columns in each column direction so as to generate a regular quasi-cyclic matrix H_(QC) as shown in the above-mentioned equation (2) (step ST1). In this case, the following relationships hold: 0≦j≦J−1 and 0≦l≦L−1.

In this case, when generating the regular quasi-cyclic matrix H_(QC), the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(p_(j,l)) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and the other matrix elements are “0”s. For example, the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix in such a way that a plurality of cyclic permutation matrices I(p_(j,l)) arranged in the 1st row differ from one another (the details of this process will be mentioned below).

The quasi-cyclic matrix generating unit 31 also defines a matrix H_(D) with M (=pJ) rows and M (=pJ) columns which is a matrix in which matrices I(0) are arranged in a stair-step shape as follows (step ST2).

$\begin{matrix} {H_{D} = {\begin{bmatrix} {I(0)} & 0 & \cdots & \cdots & 0 \\ {I(0)} & {I(0)} & 0 & \ddots & \vdots \\ 0 & \ddots & \ddots & \ddots & \vdots \\ \vdots & \ddots & {I(0)} & {I(0)} & 0 \\ 0 & \cdots & 0 & {I(0)} & {I(0)} \end{bmatrix} \cdot}} & \left\lbrack {{Equation}\mspace{14mu} 2} \right\rbrack \end{matrix}$

where I(0) is a unit matrix and 0 is a zero matrix.

The mask matrix generating unit 32 generates a J×L matrix having two elements as a mask matrix Z=[z_(j,l)] which can adapt to a plurality of coding rates (step ST3).

After the quasi-cyclic matrix generating unit 31 generates the regular quasi-cyclic matrix H_(QC) and the mask matrix generating unit 32 generates the mask matrix Z, the masking processing unit 33 carries out a masking arithmetic operation as will be shown below so as to convert a specific cyclic permutation matrix I(p_(j,l)) within the regular quasi-cyclic matrix H_(QC) into a zero matrix, and to generate an irregular masked quasi-cyclic matrix M (step ST4).

$\begin{matrix} {{{M = {{Z \otimes H_{QC}} = \begin{bmatrix} {z_{0,0}{I\left( p_{0,0} \right)}} & \cdots & {z_{0,I,{- 1}}{I\left( p_{0,I,{- 1}} \right)}} \\ \vdots & \ddots & \vdots \\ {z_{{J - 1},0}{I\left( p_{{J - 1},0} \right)}} & \cdots & {z_{{J - 1},I,{- 1}}{I\left( p_{{J - 1},I,{- 1}} \right)}} \end{bmatrix}}}Z_{j,1}{I\left( p_{j,1} \right)}} = \left\{ \begin{matrix} {I\left( p_{j,1} \right)} & {{for}\mspace{11mu}} & {{z_{j,1} = 1},} \\ 0 & {{for}\mspace{11mu}} & {z_{j,1} = {0 \cdot}} \end{matrix} \right.} & \left\lbrack {{Equation}\mspace{14mu} 3} \right\rbrack \end{matrix}$

After the masking processing unit 33 generates the masked quasi-cyclic matrix M, the parity check matrix generating unit 34 generates a parity check matrix H_(M1) which is not masked from both the regular quasi-cyclic matrix H_(QC) and the matrix H_(D) which are generated by the quasi-cyclic matrix generating unit 31, and also generates a masked parity check matrix H_(M2) from both the masked quasi-cyclic matrix M and the matrix H_(D) (step ST5).

H _(M1) :=[H _(QC) |H _(D) ], H _(M2) :=[M|H _(D)].   [Equation 4]

As a result, the parity check matrices H_(M1) and H_(M2) are generated. In order to provide a code having a low coding rate, an extension of the parity check matrices H_(M1) and H_(M2) will be considered hereafter.

First, an M×M matrix Hl is defined with codes defined by the parity check matrices H_(M1) and H_(M2) being expressed respectively as C_(M1) and C_(M2).

$\begin{matrix} {H_{I}:=\begin{bmatrix} {I(0)} & 0 & \cdots & \cdots & 0 \\ 0 & {I(0)} & \ddots & \ddots & \vdots \\ \vdots & \ddots & {I(0)} & \ddots & \vdots \\ \vdots & \ddots & \ddots & {I(0)} & 0 \\ 0 & \cdots & \cdots & 0 & {I(0)} \end{bmatrix}} & \left\lbrack {{Equation}\mspace{14mu} 5} \right\rbrack \end{matrix}$

Furthermore, for nonnegative integers i and t, and an M×(N−M) matrix Ai which will be defined below, a J×L mask matrix Z_(A) is defined.

$\begin{matrix} {Z_{A_{i}} = \begin{bmatrix} z_{{({Ji})},0} & z_{{({Ji})},1} & \cdots & z_{{({Ji})},I,{\cdot 1}} \\ z_{{({{Ji} + 1})},0} & z_{{({{Ji} + 1})},1} & \cdots & z_{{({{Ji} + 1})},I,{- 1}} \\ \vdots & \vdots & \ddots & \vdots \\ z_{{({{Ji} + J - 1})},0} & z_{{({{Ji} + J - 1})},1} & \cdots & z_{{({{Ji} + J - 1})},I,{- 1}} \end{bmatrix}} & \left\lbrack {{Equation}\mspace{14mu} 6} \right\rbrack \end{matrix}$

In addition, an M×N matrix H_(A) is defined.

$\begin{matrix} {H_{A_{i}} = {\begin{bmatrix} {I\left( p_{{({Ji})},0} \right)} & \cdots & {I\left( p_{{({Ji})},I,{- 1}} \right)} \\ \vdots & \ddots & \vdots \\ {I\left( p_{{({{Ji} + J - 1})},0} \right)} & \cdots & {I\left( p_{{({{Ji} + J - 1})},I,{- 1}} \right)} \end{bmatrix} \cdot}} & \left\lbrack {{Equation}\mspace{14mu} 7} \right\rbrack \end{matrix}$

In addition, by defining (tM)×(N+(t−1)M) matrices H_(E1) and H_(E2) for the nonnegative integer t as follows, the parity check matrices H_(E1) and H_(E2) are generated.

$\begin{matrix} {{H_{E\; 1}:=\begin{bmatrix} H_{QC} & H_{D} & 0 & \cdots & \cdots & 0 \\ H_{A_{1}} & H_{I} & H_{I} & \ddots & \ddots & \vdots \\ H_{A_{2}} & 0 & \ddots & \ddots & \ddots & \vdots \\ \vdots & \vdots & \ddots & \ddots & \ddots & 0 \\ H_{A_{i - 1}} & 0 & \cdots & 0 & H_{I} & H_{I} \end{bmatrix}},{H_{E\; 2}:=\begin{bmatrix} M & H_{D} & 0 & \cdots & \cdots & 0 \\ A_{1} & H_{I} & H_{I} & \ddots & \ddots & \vdots \\ A_{2} & 0 & \ddots & \ddots & \ddots & \vdots \\ \vdots & \vdots & \ddots & \ddots & \ddots & 0 \\ A_{i - 1} & 0 & \cdots & 0 & H_{I} & H_{I} \end{bmatrix}},{A_{i} = {{Z_{A_{i}} \otimes H_{A_{i}}} \cdot}}} & \left\lbrack {{Equation}\mspace{14mu} 8} \right\rbrack \end{matrix}$

LDPC codes defined by the matrices H_(E1) and H_(E2) are expressed as C_(E1) and C_(E2) respectively.

Up to now, it is assumed that the cyclic permutation matrix used for the stair-step structure is I(0), though it is not necessary to limit the cyclic permutation matrix to I(0) and a combination of arbitrary matrices I(s|s∈[0, p−1]) can be provided.

The LDGM structure is the one in which a part of a parity check matrix is a lower triangular matrix, such as the structure of the matrices H_(E1) and H_(E2). By using this LDGM structure, the encoding can be implemented easily without having to use any generator matrix G.

For example, when a systematic codeword v is as shown in the following equation and an information message u=(u₁, u₂, . . . , u_(K)) is provided, because a parity element p_(m)=(p₁, p₂, . . . , p_(M)) satisfies “H·v^(T)=0”, the parity element pm is generated as shown in the following equation (4).

$\begin{matrix} {v = \left( {v_{1},v_{2},\ldots \mspace{14mu},v_{K},v_{K + 1},v_{K + 2},\ldots \mspace{14mu},v_{N}} \right)} \\ {= \left( {u_{1},u_{2},\ldots \mspace{14mu},u_{K},p_{1},p_{2},\ldots \mspace{14mu},p_{M}} \right)} \end{matrix}$

where N=K+M.

$\begin{matrix} \left\lbrack {{Equation}{\mspace{11mu} \;}9} \right\rbrack & \; \\ {{P_{m} = {\sum\limits_{n = 1}^{K + m - 1}{v_{n}h_{m,n}}}},{1 \leq m \leq M},{1 \leq n \leq N}} & (4) \end{matrix}$

where h_(m,n) denotes an element whose row number is m and whose column number is n in the parity check matrix H.

Hereafter, a condition under which the girth g is six or more (g≧6) will be examined.

More specifically, theorem 1, theorem 2, theorem 3, and corollary 4 which establish the following relationship g≧6 will be explained.

Theorem 1 (Refer to the Following Reference 1)

In the Tanner graph expression of a quasi-cyclic matrix H_(QC), the necessary and sufficient conditions which make the quasi-cyclic matrix satisfy g≧6 is that the following equation (5) is established.

[Equation 10]

p _(j) ₀ _(,l) ₀ −p _(j) ₁ _(,l) ₀ +p _(j) ₁ _(,l) ₁ −p _(j) ₀ _(,l) ₁ ≠0 (mod p)

For j₀≠j₁, l₀≠l₁.   (5)

REFERENCE 1

M. Fossorier, “Quaff-Cyclic Low-Density Parity-Check Codes From Circulant Permutation Matrices ”, IEEE Trans. Inform. Theory, Vol. 50, No. 8 (2004) pp. 1788-1793.

Theorem 2

In a case of J<L, when L is a prime number, there exists a (J,L)-regular QC LDPC code having a girth satisfying and based on H_(QChat) at p=L.

In this case, H_(QChat) is a matrix H_(QC) having the following regularity.

p _(j,l) =j·p _(1,l) (mod p), 0≦p _(1,l) _(i) ≦p−1, p _(1,l) ₀ ≠p _(1,l) ₁ , l ₀ ≠l ₁.   [Equation 11]

Furthermore, a regular LDPC with column weight J and row weight L is referred to as a (J,L)-regular LDPC code, and an LDPC code using a quasi-cyclic check matrix is referred to as a (J,L)-regular QC LDPC code.

Hereafter, it will be proved that the theorem 2 is correct.

Verification of the existence of a (J,L)-regular QC LDPC code based on H_(QChat) at p=L and having a girth satisfying g≧6 means that the theorem 2 is proved to be correct.

More specifically, when the existence of a (J,L)-regular QC LDPC code having a girth satisfying g≧6 can be verified within the limits defined by the following equation (6), the theorem 2 is proved to be correct.

[Equation 12]

p _(j,l) =j·p _(1,l) ₁ (mod L), 0≦p _(1,l) ₁ <L, 0≦j<J   (6)

When the following equation (7) can be verified from the theorem 1, the existence of a (J,L)-regular QC LDPC code based on H_(QChat) at p=L and having a girth satisfying g≧6 is verified.

$\begin{matrix} \left\lbrack {{Equation}\mspace{14mu} 13} \right\rbrack & \; \\ \begin{matrix} {{p_{j_{0},l_{0}} - p_{j_{1},l_{0}} + p_{j_{1},l_{1}} - p_{j_{0},l_{1}}} = {{j_{0} \cdot {p_{1,l}}_{0}} - {j_{1} \cdot p_{1,l_{0}}} + {j_{1} \cdot}}} \\ {{p_{1,l_{1}} - {j_{0} \cdot p_{1,l_{1}}}}} \\ {= \left( {j_{0} - j_{1}} \right)} \\ {{\left( {p_{1,l_{0}} - p_{1,l_{1}}} \right) \neq {0\mspace{11mu} \left( {{mod}\; L} \right)}}} \end{matrix} & (7) \end{matrix}$

For example, assuming the following equation (8), in a case of j₀>j₁, the following relationship holds: 1≦j₀−j₁<J.

[Equation 14]

(j ₀ −j ₁)(p _(1,l) _(o) −p _(1,l) ₁ )=0 (mod L)   (8)

Because L is a prime number, the following equation (9) holds and there exist integers a and b which satisfy the following equation (10).

[Equation 15]

gcd(j ₀ −j ₁ ,L)=1   (9)

where gcd is a mathematical symbol for calculating the least common multiple.

α(j ₀ −j ₁)+bL=1   (10)

Therefore, the following equation holds: a(j₀−j₁)=1 (mod L), and there exists an inverse element (j₀−j₁)⁻¹ (mod L).

Therefore, the following equation (11) is established.

[Equation 16]

p _(1,l) _(o) −p _(1,l) ₁ =(j ₀ −j ₁)⁻¹(j ₀ −j ₁)(p _(1,l) ₀ −p _(1,l) ₁ )=0 (mod L)   (11)

Because this is contradictory to the following equation (12), the equation (7) is established.

[Equation 17]

p_(1,l) ₀ ≠p_(1,l) ₁   (12)

Furthermore, also in a case of j₀<j₁, the following relationship holds: 1≦j₀−j₁<J.

Also in the case of j₀<j₁, when verification is performed in the same way as that in the case of j₀>j₁, the equation (7) is established.

Therefore, it is verified from the theorem 1 that there exists H_(QChat) which satisfies g≧6 and p=L, and this means that the theorem 2 is proved to be correct.

Next, conditions imposed on H_(QChat) to guarantee that H_(QChat) has a girth satisfying g≧6 will be specified.

Theorem 3

H_(QChat) in which p is a prime number and the following relationships hold: and has a girth satisfying g≧6.

Hereafter, it will be proved that the theorem 3 is correct.

When it is verified that H_(QChat) satisfying J≧L and g≧6 always satisfies the equation (14), the theorem 3 is proved to be correct.

More specifically, when it is verified that H_(QChat) having a girth satisfying g≧6 always satisfies the equation (14) within the limits defined by the following equation (13), the theorem 3 is proved to be correct.

$\begin{matrix} \left\lbrack {{Equation}\mspace{14mu} 18} \right\rbrack & \; \\ {{p_{j,l} = {j \cdot {p_{1,l_{1}}\left( {{mod}\; p} \right)}}},{0 \leq p_{1,l_{1}} < L \leq p},{0 \leq j < J < p}} & (13) \\ \begin{matrix} {{p_{j_{0},l_{0}} - p_{j_{1},l_{0}} + p_{j_{1},l_{1}} - p_{j_{0},l_{1}}} = {{j_{0} \cdot {p_{1,l}}_{0}} - {j_{1} \cdot p_{1,l_{0}}} + {j_{1} \cdot}}} \\ {{p_{1,l_{1}} - {j_{0} \cdot p_{1,l_{1}}}}} \\ {= \left( {j_{0} - j_{1}} \right)} \\ {{\left( {p_{1,l_{0}} - p_{1,l_{1}}} \right) \neq {0\mspace{11mu} \left( {{mod}\; p} \right)}}} \end{matrix} & (14) \end{matrix}$

Under the conditions defined by the following equation (15), the following inequality (16) is established.

[Equation 19]

j₀>j₁, p_(1,l) ₀ >p_(1,l) ₁   (15)

1≦j ₀ −j ₁ <J≦p, 1≦p _(1,J) ₀ −p _(1,J) ₁ <L≦p   (16)

At this time, because p is a prime number, the following equations (17) and (18) are established and the following equation (19) is drawn directly from these equations (refer to pp. 8 and 9 of the following reference 2).

[Equation 20]

gcd((j ₀ −j ₁), p)=1   (17)

gcd((p _(1,l) ₀ −p _(1,l) ₁ ), p)=1   (18)

gcd((j ₀ −j ₁)(p _(1,l) ₀ −p _(1,l) ₁ ), p)=1   (19)

Therefore, the equation (14) is established.

Similarly, under the conditions defined by the following equation (20), the following inequality (21) is established.

[Equation 21]

j₀<j₁, p_(1,l) ₀ >p_(1,l) ₁   (20)

1≦−(j ₀ j ₁)<J<p, 1≦p _(1,l) ₀ p _(1,l) ₁ <L≦p   (21)

At this time, because p is a prime number, the following equations (22) and (23) are established and the following equation (24) is drawn directly from these equations (refer to pp. 8 and 9 of the following reference 2).

[Equation 22]

gcd(−(j ₀ −j ₁), p)=1   (22)

gcd((p _(1,l) ₀ −p _(1,l) ₁ ), p)=1   (23)

gcd(−(j ₀ −j ₁)(p _(1,l) ₀ −p _(1,l) ₁ ), p)=1   (24)

Therefore, the following equation (25) is established.

[Equation 23]

−(j ₀ −j ₁)(p _(1,l) ₀ −p _(1,l) ₁ )≠0 (mod p)   (25)

Therefore, the equation (14) is established.

When even under the conditions defined by the following equation (26), and under the conditions defined by the equation (27), verification is carried out according to the same procedure as that according to which verification is carried out under the conditions defined by the following equation (15), and under the conditions defined by the equation (20), it is proved that the equation (14) is established.

Therefore, it is verified that the theorem 3 is correct.

[Equation 24]

j₀>j₁, p_(1,l) ₀ <p_(1,l) ₁   (26)

j₀<j₁, p_(1,l) ₀ <p_(1,l) ₁   (27)

REFERENCE 2

“Exercises for Introduction to Group, Ring and Field” written by Hiroshi Niitsuma and Tetsuzo Kimura, and published by KYORITSU SHUPPAN Co., Ltd.

Corollary 4 (Theorem)

When p is a prime number, and the following relationships hold: J≧L and p≧J, if H_(QChat) includes p_(1,l)=0, a QC LDPC code which is defined by the matrix H_(E1) consisting of both a matrix H′_(QChat) from which a column of p_(1,l)=0 is removed, and the matrix H_(D) has a girth satisfying g≧6.

Hereafter, it will be proved that the corollary 4 is correct.

Because it is clear from the theorem 3 that H_(QChat) including p_(1,l)=0 also has a girth satisfying g≧6, the corollary 4 is proved to be correct when the theorem 1 is satisfied between the matrix H′_(QChat) and the matrix H_(D).

The relationship associated with the loop 4 between the matrix H′_(QChat) and the matrix H_(D) verifies the equation (5) in a matrix given by the following equation (28).

$\begin{matrix} \left\lbrack {{Equation}\mspace{14mu} 25} \right\rbrack & \; \\ {{{{for}\mspace{14mu} 0} \leq j \leq {J - 2}},{{{and}\mspace{14mu} 0} \leq l \leq {L - {{1\begin{bmatrix} {I\left( p_{j,l} \right)} & {I(0)} \\ {I\left( p_{{j + 1},l} \right)} & {I(0)} \end{bmatrix}}.}}}} & (28) \end{matrix}$

Because H_(QChat) including p_(1,l)=0 also has a girth satisfying g≧6, the following equation (29) is established for the matrix of the equation (28).

[Equation 26]

p _(j,l−) p _(j+1,l)+0−0≠0 (mod p)   (29)

Therefore, it is verified that the corollary 4 is correct.

Because the column of p_(1,l)=0 is removed from the matrix H′_(QChat), the condition under which the H_(QChat) has a girth satisfying g≧6 are p≧L+1.

Next, a design method for will be explained.

It is clear from the above-mentioned theorem 3 that by designing the matrix H_(QC) in such a way that this matrix satisfies the following conditions (i) and (ii), an LDPC code having a girth satisfying can be configured.

[Equation 27]

p _(j,l) =j·p _(1,l) _(i) (mod p), 0≦p _(1,l) _(i) ≦p−1, p _(1,l) ₀ ≠p _(1,l) ₁ , l ₀ ≠l ₁.   (i)

p is a prime number, and J≧L, and p≧J.

Furthermore, in order to provide an LDPC code having an LDGM structure, it is clear from the theorem 3 and the corollary 4 that by designing the matrix H_(E1) in such a way that this matrix consists of both the matrix H_(QC) which satisfies the following conditions (iii) and (iv), and the matrix H_(D), an LDPC code having an LDGM structure satisfying g≧6 can be configured.

[Equation 28]

p _(j,l) =j·p _(1,l) _(i) (mod p), 0<p _(1,l) _(i) ≦p−1, p _(1,l) ₀ ≠p _(1,l) ₁ , l ₀ ≠l ₁.   (iii)

p is a prime number, and J≧L+1 and p≧J.   (ii)

In the corollary 4, because the column of p_(1,l)=0 is removed from the matrix H′_(QChat), the condition under which the H_(QChat) has a girth satisfying g≧6 are p≧L+1, as shown in the condition (iv).

By using the matrix H_(E1) as a base and then generating the matrix H_(E2) on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧6 can also be configured.

Hereafter, a concrete numerical example will be specified.

It is clear from the theorem 2 that the following matrix H_(QC) has a girth satisfying g≧6 at p=3.

$\begin{matrix} \left\lbrack {{Equation}\mspace{14mu} 29} \right\rbrack & \; \\ {H_{QC} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(1)} & {I(2)} \\ {I(0)} & {I(2)} & {I(1)} \end{bmatrix}} & \; \end{matrix}$

The parity check matrix H_(M1) can be generated from this matrix H_(QC).

$\begin{matrix} {\left\lbrack {{Equation}\mspace{14mu} 30} \right\rbrack {H_{M\; 1} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & 0 & 0 \\ {I(1)} & {I(2)} & {I(0)} & {I(0)} & 0 \\ {I(2)} & {I(1)} & 0 & {I(0)} & {I(0)} \end{bmatrix}}} & \; \end{matrix}$

By masking this parity check matrix H_(M1), the parity check matrix H_(M2) can be generated.

[Equation  31] $H_{M\; 2} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & 0 & 0 \\ {I(1)} & 0 & {I(0)} & {I(0)} & 0 \\ {I(2)} & {I(1)} & 0 & {I(0)} & {I(0)} \end{bmatrix}$

It is guaranteed that all of these matrices H_(QC), H_(M1), and H_(M2) have a girth satisfying g≧6.

Furthermore, a matrix H_(QC) and a matrix H_(A) having a structure including p_(1,l)=0 and having a girth satisfying g≧8 are prepared according to the same procedure, and an LDPC code having an LDGM structure satisfying g≧6 can be configured when a column of p_(1,l)=0 is removed from each of these matrix H_(QC) and matrix H_(A) and the matrix H_(E1) is designed by using the matrix H_(D) and the matrix H_(I).

By using the matrix H_(E1) as a base and then generating the matrix H_(E2) on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧6 can also be configured.

Hereafter, a concrete numerical example will be specified.

It is clear from the theorem 2 that the following matrix H_(QC) has a girth satisfying g≧6 at p=7.

$\begin{matrix} {{\left\lbrack {{Equation}\mspace{14mu} 32} \right\rbrack \begin{bmatrix} H_{QC} \\ H_{A_{1}} \end{bmatrix}} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(1)} & {I(2)} \\ {I(0)} & {I(2)} & {I(4)} \\ {I(0)} & {I(3)} & {I(6)} \\ {I(0)} & {I(4)} & {I(1)} \\ {I(0)} & {I(5)} & {I(3)} \end{bmatrix}} & \; \end{matrix}$

The parity check matrix H_(E1) can be generated from the above-mentioned matrix.

$\begin{matrix} {\left\lbrack {{Equation}\mspace{14mu} 33} \right\rbrack {H_{E\; 1} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 & 0 \\ {I(1)} & {I(2)} & 0 & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 \\ {I(2)} & {I(4)} & 0 & 0 & {I(0)} & {I(0)} & 0 & 0 & 0 \\ {I(3)} & {I(6)} & {I(0)} & 0 & 0 & 0 & {I(0)} & 0 & 0 \\ {I(4)} & {I(1)} & 0 & {I(0)} & 0 & 0 & 0 & {I(0)} & 0 \\ {I(5)} & {I(3)} & 0 & 0 & {I(0)} & 0 & 0 & 0 & {I(0)} \end{bmatrix}}} & \; \end{matrix}$

By masking this parity check matrix H_(E1), the parity check matrix H_(E2) can be generated.

$\begin{matrix} {\left\lbrack {{Equation}\mspace{14mu} 34} \right\rbrack {H_{E\; 2} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 & 0 \\ {I(1)} & 0 & 0 & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 \\ {I(2)} & {I(4)} & 0 & 0 & {I(0)} & {I(0)} & 0 & 0 & 0 \\ 0 & {I(6)} & {I(0)} & 0 & 0 & 0 & {I(0)} & 0 & 0 \\ {I(4)} & 0 & 0 & {I(0)} & 0 & 0 & 0 & {I(0)} & 0 \\ {I(5)} & {I(3)} & 0 & 0 & {I(0)} & 0 & 0 & 0 & {I(0)} \end{bmatrix}}} & \; \end{matrix}$

It is guaranteed that all of these matrices H_(E1) and H_(E2), and so on have a girth satisfying g≧6.

As can be seen from the above description, in accordance with this Embodiment 1, when generating a regular quasi-cyclic matrix H_(QC), the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(p_(j,l)) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and the other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices I(p_(j,l)) arranged in the 1st row differ from one another. Therefore, the present embodiment offers an advantage of being able to easily generate a parity check matrix H_(M) having good performance and regularity, and so on.

Embodiment 2

In above-mentioned Embodiment 1, the example in which a parity check matrix H_(M) having a girth satisfying g≧6, and so on are generated is shown. In contrast, in this Embodiment 2, generation of a parity check matrix H_(M) having a girth satisfying g=8, and so on will be explained.

Hereafter, conditions under which such a matrix has a girth satisfying g≧8 will be considered.

More specifically, theorem 5, theorem 6 and corollary 7 which make such a matrix have a girth satisfying g≧8 will be explained.

Theorem 5 (Refer to the Above-Mentioned Reference 1)

In the Tanner graph expression of a quasi-cyclic matrix H_(QC), the necessary and sufficient conditions which make the quasi-cyclic matrix satisfy g≧8 is that the equation (5) is established and the following equation (30) is established.

[Equation 35]

p _(j) ₀ _(,j) ₀ −p _(j) ₁ _(,j) ₀ +p _(j) ₁ _(,l) ₁ −p _(j) ₂ _(,l) ₁ +p _(j) ₂ _(,l) ₂ −p _(j) ₀ _(,l) ₂ ≠0 (mod p) for j ₀ ≠j ₁ , j ₁ ≠j ₂ , l ₀ ≠l ₁ , l ₁ ≠l ₂.   (3 0)

Theorem 6

In a case of i=1, 2, or . . . , when all of p_(i)J×p_(i)L_(i) check matrices have a girth satisfying g≧8, there exists a (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix have a girth satisfying g≦8.

Hereafter, it will be proved that the theorem 6 is correct.

First, a check matrix H_(QC) ^((i)), where i=1 or 2, is defined as follows.

H _(QC) ^((i))=(I(p _(j,l) ^((i))))_(0≦j≦J−1,0≦l≦L) _(i) ⁻¹

0<p _(j,l) ^((i)) ≦L _(i)−1   [Equation 36]

where (I(p_(j,l) ^((i))))_(0≦j≦J−1,0≦l≦Li−1) is a quasi-cyclic matrix which is configured by combining cyclic permutation matrices I(p_(j,l) ^((i))), where 0≦j≦J−1 and 0≦l≦L_(i)−1.

For example, in a case of I(p_(j,l) ^((l))))_(0≦j≦1,0≦l≦2), the check matrix H_(QC) ^((i)) is given as follows.

$\begin{matrix} {\left\lbrack {{Equation}\mspace{14mu} 37} \right\rbrack \begin{bmatrix} {I\left( p_{0,0}^{(1)} \right)} & {I\left( p_{0,1}^{(1)} \right)} & {I\left( p_{0,2}^{(1)} \right)} \\ {I\left( p_{1,0}^{(1)} \right)} & {I\left( p_{1,1}^{(1)} \right)} & {I\left( p_{1,2}^{(1)} \right)} \end{bmatrix}} & \; \end{matrix}$

Furthermore, the check matrix H_(QC) ^((i)) has a girth satisfying g≧8, p_(i)≧Li, and p_(i) is a prime number.

Moreover, a new check matrix H_(QC) ^((1,2)) is defined as follows.

H _(QC) ^((1,2))=(I(p _(j,l) ^((1,2)))_(0≦j≦J−1,0≦l≦L) ₁ _(L) ₂ ⁻¹   [Equation 38]

Furthermore, in a case of 0≦j≦J−1, 0≦q≦L₁−1, and 0≦r≦L₂−1, the following equation (31) is defined.

[Equation 39]

p _(j,qL) ₂ _(+r) ^((1,2)) =p _(j,q) ⁽¹⁾ p ₂ +p _(j,r) ⁽²⁾   (31)

In this case, when the following equation is defined: l_(i)=q_(i)L₂+r_(i), and it is verified that the following equations (32) and (33) are established from the conditional expressions for g≧8, the theorem 6 is proved to be correct.

[Equation 40]

d ₁ ^(a) p ₂ +d ₂ ^(a)≠0 (mod p=p ₁ p ₂)   (32)

d ₁ ^(b) p ₂ +d ₂ ^(b)≠0 (mod p=p ₁ p ₂)   (33)

First, the following equation is established.

d ₁ ^(a) =p _(j) ₀ _(,q) ₀ ⁽¹⁾ −p _(j) ₁ _(,q) ₀ ⁽¹⁾ +p _(j) ₁ _(,q) ₁ ⁽¹⁾ −p _(j) ₀ _(,q) ₁ ⁽¹⁾

d ₂ ^(a) =p _(j) ₀ _(,r) ₀ ⁽²⁾ −p _(j) ₁ _(,r) ₀ ⁽²⁾ +p _(j) ₁ _(,r) ₁ ⁽²⁾ −p _(j) ₀ _(,r) ₁ ⁽²⁾

d ₁ ^(b) =p _(j) ₀ _(g) ₀ ⁽¹⁾ −p _(j) ₁ _(,g) ₀ ⁽¹⁾ +p _(j) ₁ _(,g) ₁ ⁽¹⁾ −p _(j) ₂ _(,g) ₁ ⁽¹⁾ +p _(j) ₂ _(,g) ₂ ⁽¹⁾ −p _(j) ₀ _(,g) ₂ ⁽¹⁾

d ₂ ^(b) =p _(j) ₀ _(,r) ₀ ⁽²⁾ p _(j) ₁ _(,r) ₀ ⁽²⁾ +p _(j) ₁ _(,r) ₁ ⁽²⁾ −p _(j) ₂ _(,r) ₁ ⁽²⁾ +p _(j) ₂ _(,r) ₂ ⁽²⁾ −P _(j) ₀ _(,r) ₂ ⁽²⁾   [Equation 41]

At this time, because the following relationships hold: j₀≠j₁ and l₀≠l₁, a condition of q₀≠q₁ or r₀≠r₁ holds.

Assuming that the following relationships hold: r₀≠r₁ and q₀=q₁, because the following relationships hold: d₁ ^(a)=0 (mod p₁) and d₁ ^(b)=0 (mod p₁), and the check matrix H_(QC) ⁽²⁾ satisfies the equations (5) and (30), the following relationships hold: d₂ ^(a)≠0 (mod p₂) and d₂ ^(b)≠0 (mod p₂).

Therefore, the above-mentioned equations (32) and (33) are established.

Furthermore, assuming that the following relationships hold: r₀=r₁ and q₀≠q₁, because the following relationships hold: d₂ ^(a)=0 (mod p₂) and d₂ ^(b)=0 (mod p₂), and the check matrix H_(QC) ⁽¹⁾ satisfies the equations (5) and (30), the following relationships hold: d₁ ^(a)≠0 (mod p₁) and d₁ ^(b)≠0 (mod p₁).

Therefore, the above-mentioned equations (32) and (33) are established.

In contrast, assuming that the following relationships hold: r₀≠r₁ and q₀=q₁, because the check matrices H_(QC) ⁽¹⁾ and H_(QC) ⁽²⁾ satisfy the equations (5) and (30), the following relationships hold: d₂ ^(a)≠0 (mod p₂) and d₂ ^(b)≠0 (mod p₂) and the following relationships hold: d₁ ^(a)≠0 (mod p₁) and d₁ ^(b)≠0 (mod p₁).

Therefore, the above-mentioned equations (32) and (33) are established.

Because it can be verified in the above-mentioned way that the equations (32) and (33) are established, the theorem 6 is proved to be correct.

Therefore, the necessary and sufficient conditions for g≧8 are satisfied.

By repeating this process recursively for the plural numbers i, a (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth satisfying g≧8 can be configured.

Corollary 7 (Theorem)

In a case of i=1, 2, or . . . , when all the p_(i)J×p_(i)L_(i) check matrices have a girth satisfying g≧6, there exists a (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth satisfying g≧6.

Because the proof of the theorem 6 is verified by also using the conditional expression (5) for satisfying g≧6, the corollary 7 can be proved promptly to be correct.

Next, a design method for g≧8 will be explained.

It is clear from the above-mentioned theorem 6 that by designing a matrix H_(QC) which satisfies the following conditions (i) and (vi), an LDPC code having a girth satisfying g≧8 can be configured.

The operation is ended at a time when the operation reaches a desired check matrix. Furthermore, the matrices H_(QC) ^((i)) can be identical to one another because the theorem 6 is satisfied even in this case.

[Equation 42]

Prepare a p ₁ J×p ₁ L ₁ check matrix H _(QC) ⁽¹⁾=(I(p _(j,q) ⁽¹⁾))_(0≦j≦J−1,0≦q≦L) ₁ ⁻¹ having a girth satisfying g≧8 .   (i)

Prepare a p ₂ J×p ₂ L ₂ check matrix H _(QC) ⁽²⁾=(I(p _(j,q) ⁽²⁾))_(0≦j≦J−1,0≦q≦L) ₂ ⁻¹ having a girth satisfying g≧8.   (ii)

Configure H _(QC) ^((1,2))=(I(p _(j,l=qL) ₂ _(+r) ^((1,2)) =p _(j,q) ⁽¹⁾ p ₂ +p _(j,r) ⁽²⁾))_(0≦j≦J−1,0≦l≦L) ₁ _(L) ₂ ⁻¹.   (iii)

Prepare a p ₃ J×p ₃ L ₃ check matrix H _(QC) ⁽³⁾=(I(p _(j,s) ⁽³⁾))_(0≦j≦J−1,0≦s≦L) ₃ ⁻¹ having a girth satisfying g≧8 .   (iv)

Configure H _(QC) ^((1,2,3))≦(I(p _(j,k=lL) ₃ _(+s) ^((1,2,3)) =p _(j,l) ^((1,2)) p ₃ +p _(j,s) ⁽³⁾))_(0≦j≦J−1,0≦k≦L) ₁ _(L) ₂ _(L) ₃ ⁻¹.   (v)

Extend the check matrix according to the same procedure.   (vi)

According to the above-mentioned procedure, by designing a parity check matrix H_(M1) by using a matrix H_(D) in which a row of p_(1,l)=0 is removed from the check matrix H_(QC) including p_(1,l)=0 and having a girth satisfying g≧8, an LDPC code having an LDGM structure satisfying g≧8 can be configured.

By using the matrix H_(M1) as a base and then generating a matrix H_(M2) on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧8 can also be configured.

Hereafter, a concrete numerical example will be specified.

The following matrix H_(QC) ⁽¹⁾ has been verified to have a girth satisfying g≧8 at p₁=p₂=3.

$\begin{matrix} {{\left\lbrack {{Equation}\mspace{14mu} 43} \right\rbrack H_{QC}^{(1)} = {H_{QC}^{(2)} = \begin{bmatrix} {I(0)} & {I(0)} \\ {I(0)} & {I(1)} \\ {I(0)} & {I(2)} \end{bmatrix}}}{{Furthermore},{p = {{p_{1}p_{2}} = 9}}}{H_{QC} = {H_{QC}^{({1,2})} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(1)} & {I(3)} & {I(4)} \\ {I(0)} & {I(2)} & {I(6)} & {I(8)} \end{bmatrix}}}} & \; \end{matrix}$

The parity check matrix H_(M1) can be generated from this matrix H_(QC).

$\begin{matrix} {\left\lbrack {{Equation}\mspace{14mu} 44} \right\rbrack {H_{M\; 1} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 \\ {I(1)} & {I(3)} & {I(4)} & {I(0)} & {I(0)} & 0 \\ {I(2)} & {I(6)} & {I(8)} & 0 & {I(0)} & {I(0)} \end{bmatrix}}} & \; & \; \end{matrix}$

By masking this parity check matrix H_(M1), the parity check matrix H_(M2) can be generated.

[Equation  45] $H_{M\; 2} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 \\ {I(1)} & {I(3)} & 0 & {I(0)} & {I(0)} & 0 \\ {I(2)} & 0 & {I(8)} & 0 & {I(0)} & {I(0)} \end{bmatrix}$

It is guaranteed that all of these matrices H_(QC), H_(M1), and H_(M2) have a girth satisfying g≧8.

Furthermore, a matrix H_(QC) and a matrix H_(A) each having a structure including a submatrix in which all the elements in a column are p_(j,l)=0, and having a girth satisfying g≧8 can be prepared according to the same procedure, and an LDPC code having an LDGM structure satisfying g≧8 can be configured when the submatrix in which all the elements in a column are p_(j,l)=0 is removed from each of these matrices H_(QC) and H_(A) and a matrix H_(E1) is designed by using the matrix H_(D) and a matrix H_(I).

By using the matrix H_(E1) as a base and then generating a matrix H_(E2) on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧8 can also be configured.

Hereafter, a concrete numerical example will be specified.

The following matrix has been verified to have a girth satisfying g≧8 at p₁=p₂=3.

$\begin{matrix} {{\begin{bmatrix} H_{QC}^{(1)} \\ H_{A_{1}}^{(1)} \end{bmatrix} = {\begin{bmatrix} H_{QC}^{(2)} \\ H_{A_{1}}^{(2)} \end{bmatrix} = \begin{bmatrix} {I(0)} & {I(0)} \\ {I(0)} & {I(1)} \\ {I(0)} & {I(2)} \\ {I(0)} & {I(3)} \\ {I(0)} & {I(4)} \\ {I(0)} & {I(5)} \end{bmatrix}}}{{Furthermore},{p = {{p_{1}p_{2}} = {{49\begin{bmatrix} H_{QC} \\ H_{A_{1}} \end{bmatrix}} = {\begin{bmatrix} H_{QC}^{({1,2})} \\ H_{A_{1}}^{({1,2})} \end{bmatrix} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(1)} & {I(7)} & {I(8)} \\ {I(0)} & {I(2)} & {I(14)} & {I(16)} \\ {I(0)} & {I(3)} & {I(21)} & {I(24)} \\ {I(0)} & {I(4)} & {I(28)} & {I(32)} \\ {I(0)} & {I(5)} & {I(35)} & {I(40)} \end{bmatrix}}}}}}} & \left\lbrack {{Equation}\mspace{14mu} 46} \right\rbrack \end{matrix}$

The parity check matrix H_(E1) can be generated from the above-mentioned matrix.

$\begin{matrix} {H_{E\; 1} = {\quad\left\lbrack \begin{matrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 & 0 \\ {I(1)} & {I(7)} & {I(8)} & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 \\ {I(2)} & {I(14)} & {I(16)} & 0 & {I(0)} & {I(0)} & 0 & 0 & 0 \\ {I(3)} & {I(21)} & {I(24)} & {I(0)} & 0 & 0 & {I(0)} & 0 & 0 \\ {I(4)} & {I(28)} & {I(32)} & 0 & {I(0)} & 0 & 0 & {I(0)} & 0 \\ {I(5)} & {I(35)} & {I(40)} & 0 & 0 & {I(0)} & 0 & 0 & {I(0)} \end{matrix} \right\rbrack}} & \left\lbrack {{Equation}\mspace{14mu} 47} \right\rbrack \end{matrix}$

By masking this parity check matrix H_(E1), the parity check matrix H_(E2) can be generated.

$\begin{matrix} {H_{E\; 2} = {\quad\begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 & 0 \\ {I(1)} & 0 & {I(8)} & {I(0)} & {I(0)} & 0 & 0 & 0 & 0 \\ {I(2)} & {I(14)} & 0 & 0 & {I(0)} & {I(0)} & 0 & 0 & 0 \\ 0 & {I(21)} & {I(24)} & {I(0)} & 0 & 0 & {I(0)} & 0 & 0 \\ {I(4)} & 0 & {I(32)} & 0 & {I(0)} & 0 & 0 & {I(0)} & 0 \\ {I(5)} & {I(35)} & 0 & 0 & 0 & {I(0)} & 0 & 0 & {I(0)} \end{bmatrix}}} & \left\lbrack {{Equation}{\mspace{11mu} \;}48} \right\rbrack \end{matrix}$

It is guaranteed that all of these matrices H_(E1) and H_(E2), and so on have a girth satisfying g≧6.

It is clear from the corollary 7 that according the same procedure, the matrices H_(QC), H_(M1), H_(M2), H_(E1), H_(E2), and so on which are guaranteed to have a girth satisfying g≧6 can also be designed.

Embodiment 3

In above-mentioned Embodiment 2, the example in which a parity check matrix H_(M) having a girth satisfying g≧8, and so on are generated is shown. In contrast, in this Embodiment 3, generation of a parity check matrix H_(M) having a girth satisfying g≧10, and so on will be explained.

Hereafter, conditions under which such a matrix has a girth satisfying g≧10 will be examined.

More specifically, theorem 8 and theorem 9 which make such a matrix have a girth satisfying g≧10 will be explained.

Theorem 8 (Refer to the Above-Mentioned Reference 1)

In the Tanner graph expression of a quasi-cyclic matrix H_(QC), the necessary and sufficient conditions which make the quasi-cyclic matrix satisfy g≧10 is that the equations (5) and (30) are established and the following equation (34) is established.

[Equation 49]

p _(j) ₀ _(,l) ₀ −p _(j) ₁ _(,l) ₀ +p _(j) ₁ _(,l) ₁ −p _(j) ₂ _(,l) ₁ +p _(j) ₂ _(,l) ₂ −p _(j) ₃ _(l) ₂ +p _(j) ₃ _(l) ₃ −p _(j) ₀ _(,l) ₃≠0 (mod p) for j ₀ ≠j ₁ , j ₁ ≠j ₂ , j ₂ ≠j ₃ , l ₀ 16 l ₁ , l ₁ ≠l ₂ , l ₂ ≠l ₃.   (34)

A check matrix H_(QC) ^((i)) is defined as follows.

H _(QC) ^((i))=(I(p _(j,l) ^((i))))_(0≦j≦J−1,0≦l≦L) _(i) ⁻¹

0≦p ^((i)) ≦L _(i)−1   [Equation 50]

The check matrix H_(QC) ^((i) has a girth satisfying g) _(—)10, the following relationship holds: p_(i)≧L_(i), and p_(i) is a natural number.

Moreover, a new check matrix H_(QC) ^((1,2) is defined as follows.)

H _(QC) ^((1,2))=(I(p _(j,l) ^((1,2))))_(0≦j≦J−1,0≦l≦L) ₁ _(L) ₂ ⁻¹   [Equation 51]

The following equation (35) is defined for the following relationships: 0≦j≦J−1, 0≦q≦L₁−1, and 0≦r≦L₂−1.

[Equation 52]

p _(j,qL) ₂ _(+r) ^((1,2)) =p _(j,q) ⁽¹⁾ p ₂ p _(j,r) ⁽²⁾   (35)

Theorem 9

In a case of i=1, 2, or . . . , when all the p_(i)J×p_(i)L_(i) check matrices have a girth satisfying g≧10, there exists a (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth satisfying g≧8, there exists no (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth satisfying g≧10.

Hereafter, it will be proved that the theorem 9 is correct.

It can be drawn promptly from the theorem 6 that there exists a (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth g=8.

Whether or not this check matrix has a girth satisfying g≧10 is examined.

In this case, when the following equation is defined: l_(i)=q_(i)L₂+r_(i), and it can be verified that the following equations (36), (37) and (38) are established from the conditional expressions for g≧10, the (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix also has a girth satisfying g≧10.

[Equation 53]

d ₁ ^(a) p ₂ +d ₂ ^(a)≠0 (mod p=p ₁p₂)   (36)

d ₁ ^(b) p ₂ +d ₂ ^(b)≠0 (mod p=p ₁p₂)   (37)

d ₁ ^(c) p ₂ +p ₂ ^(c)≠0 (mod p=p ₁p₂)   (38)

First, the following equation holds.

d ₁ ^(a) =p _(j) ₀ _(,q) ₀ ⁽¹⁾ −p _(j) ₁ _(q) ₀ ⁽¹⁾ +p _(j) ₁ _(q) ₁ ⁽¹⁾ −p _(j) ₀ _(,q) ₁ ⁽¹⁾

d ₂ ^(a) =p _(j) ₀ _(,r) ₀ ⁽²⁾ −p _(j) ₁ _(,r) ₀ ⁽²⁾ +p _(j) ₁ _(,r) ₁ ⁽²⁾ −p _(j) ₀ _(,r) ₁ ⁽²⁾

d ₁ ^(b) =p _(j) ₀ _(,q) ₀ ⁽¹⁾ −p _(j) ₁ _(,q) ₀ ⁽¹⁾ +p _(j) ₁ _(,q) ₁ ⁽¹⁾ −p _(j) ₂ _(,q) ₁ ⁽¹⁾ +p _(j) ₂ _(,q) ₂ ⁽¹⁾ −p _(j) ₀ _(,q) ₂ ⁽¹⁾

d ₂ ^(b) =p _(j) ₀ _(,r) ₀ ⁽²⁾ −p _(j) ₁ _(,r) ₀ ⁽²⁾ +p _(j) ₁ _(,r) ₁ ⁽²⁾ −p _(j) ₂ _(,r) ₁ ⁽²⁾ +p _(j) ₂ _(,r) ₂ ⁽²⁾ −p _(j) ₀ _(,r) ₂ ⁽²⁾

d ₁ ^(c) =p _(j) ₀ _(,q) ₀ ⁽¹⁾ −p _(j) ₁ _(,q) ₀ ⁽¹⁾ +p _(j) ₁ _(,q) ₁ ⁽¹⁾ −p _(j) ₂ _(,q) ₁ ⁽¹⁾ +p _(j) ₂ _(,q) ₂ ⁽²⁾ −p _(j) ₃ _(,q) ₂ ⁽¹⁾ +p _(j) ₃ _(,q) ₃ ⁽¹⁾ −p _(j) ₀ _(,q) ₃ ⁽¹⁾

d ₂ ^(c) =p _(j) ₀ _(,r) ₀ ⁽²⁾ −p _(j) ₁ _(,r) ₀ ⁽²⁾ +p _(j) ₁ _(,r) ₁ ⁽²⁾ −p _(j) ₂ _(,r) ₁ ⁽²⁾ +p _(j) ₂ _(,r) ₂ ⁽²⁾ −p _(j) ₃ _(,r) ₂ ⁽²⁾ +p _(j) ₃ _(,r) ₃ ⁽²⁾ −p _(j) ₀ _(,r) ₃ ⁽²⁾   [Equation 54]

Furthermore, it can be verified from the proof of the theorem 6 that the equations (36) and (37) hold.

At this time, because the following relationships hold: j₀≠j₁ and l₀≠l₁, the following condition holds: q₀≠q₁ or r₀≠r₁.

Furthermore, it is clear from the theorem 8 that the conditions: j₀≠j₁, j₁≠j₂, and j₂≠j₃ include the combination of j₀≠=j₂ and j₁=j₃.

In this case, when the following relationships are defined: l₀=q₀L₂+r₀, l₁=q₀L₂+r₁, l₂=q₁L₂+r₁, and l₃=q₁L₂+r₀, the equation (34) is as shown below and the theorem 8 is not satisfied.

Therefore, it is verified that there exists no (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth satisfying g≧10, it is proved that the theorem 9 is correct.

$\begin{matrix} {{p_{j_{0},l_{0}} - p_{j_{1},l_{0}} + p_{j_{1},l_{1}} - p_{j_{2}.l_{1}} + p_{j_{2},l_{2}} - p_{j_{3},l_{2}} + p_{j_{3},l_{3}} - p_{j_{0},l_{3}}} = {{p_{j_{0},l_{0}} - p_{j_{1},l_{0}} + p_{j_{1},l_{1}} - p_{j_{0}.l_{1}} + p_{j_{0},l_{2}} - p_{j_{1},l_{2}} + p_{j_{1},l_{3}} - p_{j_{0},l_{3}}} = {{\left( {{p_{j_{0},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{0}}^{(2)}} \right) - \left( {{p_{j_{1},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{0}}^{(2)}} \right) + \left( {{p_{j_{1},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{1}}^{(2)}} \right) - \left( {{p_{j_{1},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{1}}^{(2)}} \right) + \left( {{p_{j_{0},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{1}}^{(2)}} \right) - \left( {{p_{j_{1},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{1}}^{(2)}} \right) + \left( {{p_{j_{1},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{0}}^{(2)}} \right) - \left( {{p_{j_{1},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{0}}^{(2)}} \right)} = {{{\left( {p_{j_{0},q_{0}}^{(1)} - p_{j_{1},{qg}_{0}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{0},r_{0}}^{(2)} - p_{j_{1},r_{0}}^{(2)}} \right) + {\left( {p_{j_{1},q_{0}}^{(1)} - p_{j_{0},q_{0}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{1},r_{1}}^{(2)} - p_{j_{0},r_{1}}^{(2)}} \right) + {\left( {p_{j_{0},q_{1}}^{(1)} - p_{j_{1},q_{1}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{0},r_{1}}^{(2)} - p_{j_{1},r_{1}}^{(2)}} \right) + {\left( {p_{j_{1},q_{1}}^{(1)} - p_{j_{0},q_{1}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{1},r_{0}}^{(2)} - p_{j_{0},r_{0}}^{(2)}} \right)} = 0}}}} & \left\lbrack {{Equation}\mspace{14mu} 55} \right\rbrack \end{matrix}$

Next, a design method for g≧10 will be explained.

An example showing a conditional expression which does not satisfy the equation (34) used for the proof of the theorem 9 will be specified.

The following matrix has been verified to have a girth satisfying g≧10 at p₁=p₂.

$\begin{matrix} {H_{QC}^{(1)} = {H_{QC}^{(2)} = \begin{bmatrix} {I(0)} & {I(0)} \\ {I(0)} & {I(1)} \\ {I(0)} & {I(3)} \end{bmatrix}}} & \left\lbrack {{Equation}{\mspace{11mu} \;}56} \right\rbrack \end{matrix}$

Therefore, the quasi-cyclic matrix H_(QC) is given at p=p₁p₂=49 as follows.

$\begin{matrix} {H_{QC} = {H_{QC}^{({1,2})} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(1)} & {I(7)} & {I(8)} \\ {I(0)} & {I(3)} & {I(21)} & {I(24)} \end{bmatrix}}} & \left\lbrack {{Equation}\mspace{14mu} 57} \right\rbrack \end{matrix}$

The conditional expression which does not satisfy the equation (34) used for the proof of the theorem 9 is defined as a matrix consisting of a combination as shown below when the conditional expression is expressed in figure form.

Concretely, the conditional expression is defined as follows.

$\begin{matrix} {{p_{j_{0},l_{0}} - p_{j_{1},l_{0}} + p_{j_{1},l_{1}} - p_{j_{2}.l_{3}} + p_{j_{2},l_{2}} - p_{j_{3},l_{2}} + p_{j_{3},l_{3}} - p_{j_{0},l_{3}}} = {{p_{j_{0},l_{0}} - p_{j_{1},l_{0}} + p_{j_{1},l_{1}} - p_{j_{0}.l_{1}} + p_{j_{0},l_{2}} - p_{j_{1},l_{2}} + p_{j_{1},l_{3}} - p_{j_{0},l_{3}}} = {{\left( {{p_{j_{0},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{0}}^{(2)}} \right) - \left( {{p_{j_{1},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{0}}^{(2)}} \right) + \left( {{p_{j_{1},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{1}}^{(2)}} \right) - \left( {{p_{j_{0},q_{0}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{1}}^{(2)}} \right) + \left( {{p_{j_{0},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{1}}^{(2)}} \right) - \left( {{p_{j_{1},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{1}}^{(2)}} \right) + \left( {{p_{j_{1},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{1},r_{0}}^{(2)}} \right) - \left( {{p_{j_{1},q_{1}}^{(1)} \cdot p_{2}} + p_{j_{0},r_{0}}^{(2)}} \right)} = {{{\left( {p_{j_{0},q_{0}}^{(1)} - p_{j_{1},q_{0}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{0},r_{0}}^{(2)} - p_{j_{1},r_{0}}^{(2)}} \right) + {\left( {p_{j_{1},q_{0}}^{(1)} - p_{j_{0},q_{0}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{1},r_{1}}^{(2)} - p_{j_{0},r_{1}}^{(2)}} \right) + {\left( {p_{j_{0},q_{1}}^{(1)} - p_{j_{1},q_{0}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{0},r_{1}}^{(2)} - p_{j_{1},r_{1}}^{(2)}} \right) + {\left( {p_{j_{1},q_{1}}^{(1)} - p_{j_{0},q_{1}}^{(1)}} \right) \cdot p_{2}} + \left( {p_{j_{1},r_{0}}^{(2)} - p_{j_{0},r_{0}}^{(2)}} \right)} = {0 = {{{\left( {0 - 0} \right) \cdot 7} + \left( {0 - 0} \right) + {\left( {0 - 0} \right) \cdot 7} + \left( {1 - 0} \right) + {\left( {0 - 1} \right) \cdot 7} + \left( {0 - 1} \right) + {\left( {1 - 0} \right) \cdot 7} + \left( {0 - 0} \right)} = 0}}}}}} & \left\lbrack {{Equation}{\mspace{11mu} \;}59} \right\rbrack \end{matrix}$

Furthermore, when a pattern of g=8 is expressed by a combination of p_(j,q) ⁽¹⁾ and p_(j,r) ⁽²⁾ in such a way as to be easy to understand, the pattern is given as follows and the following relationships hold: d₁ ^(c)=0 and d₂ ^(c)=0.

For two arbitrary rows, this pattern configures loop 8 between two columns within a submatrix on a left side having the same size as the check matrix H_(QC) ⁽²⁾, and two columns in another submatrix.

Therefore, what is necessary is just to perform the design in such a way that this type of loop 8 does not occur.

Concretely, when the check matrix H_(QC) ^((1,2)) is generated from the check matrix H_(QC) ⁽¹⁾ and the check matrix H_(QC) ⁽²⁾, a portion of the matrix other than the submatrix on the left-hand side having the same size as the check matrix H_(QC) ⁽²⁾ is masked, and a matrix which avoids loop 4 within this “portion of the matrix other than the submatrix on the left-hand side” is generated. For example, the following check matrix H_(QC) ^((1,2)) is generated.

$\begin{matrix} {{H_{QC}^{({1,2})} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & 0 \\ {I(0)} & {I(1)} & 0 & {I(8)} \\ {I(0)} & {I(3)} & {I(21)} & {I(24)} \end{bmatrix}},{p = {{p_{1}p_{2}} = {{7*7} = 49}}}} & \left\lbrack {{Equation}\mspace{14mu} 61} \right\rbrack \end{matrix}$

As a result, the above-mentioned type of loop 8 does not occur. Therefore, the following relationship holds: g≧10. This H_(QC) ^((1,2)) can be used as the check matrix just as it is. Furthermore, by repeating this process recursively for the plural numbers i, a (p₁p₂ . . . ) J×(p₁p₂ . . . ) (L₁L₂ . . . ) check matrix having a girth satisfying g≧10 can be configured.

In addition, at a position of a zero matrix within the check matrix H_(QC) ^((1,2)), a cyclic permutation matrix I(p_(j,l)) which satisfies the condition g≧10 is found through a search.

For example, the following check matrix H_(QC) ^((1,2)) has a girth satisfying g≧10.

$\begin{matrix} {{H_{QC}^{({1,2})} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(44)} \\ {I(0)} & {I(1)} & {I(43)} & {I(8)} \\ {I(0)} & {I(3)} & {I(21)} & {I(24)} \end{bmatrix}},{P = {{P_{1}P_{2}} = {{7*7} = 49}}}} & \left\lbrack {{Equation}\mspace{14mu} 62} \right\rbrack \end{matrix}$

Hereinafter, the same processes as those in the design methods for g≧6 and g≧8 will be carried out.

The following check matrix H_(QC) ^((1,2)) also has a girth satisfying g≧10.

$\begin{matrix} {{H_{QC}^{({1,2})} = \begin{bmatrix} {I(0)} & {I(0)} & {I(44)} & {I(0)} & 0 & 0 \\ {I(0)} & {I(43)} & {I(8)} & {I(0)} & {I(0)} & 0 \\ {I(0)} & {I(21)} & {I(24)} & 0 & {I(0)} & {I(0)} \end{bmatrix}},{P = {{P_{1}P_{2}} = {{7*7} = 49}}}} & \left\lbrack {{Equation}\mspace{14mu} 63} \right\rbrack \end{matrix}$

Embodiment 4

In this Embodiment 4, another method of forming a check matrix satisfying g≧10 will be shown.

First, a check matrix H_(QC) ⁽¹⁾ is defined as follows.

[Equation 64]

H _(QC) ⁽¹⁾=(I(p _(j,l) ⁽¹⁾))_(o≦j≦J=1,0≦j≦L) ₁ ₌₁

0≦p ₁ ≦L ₁−1   (39)

Furthermore, the check matrix H_(QC) ⁽¹⁾ has a girth satisfying g≧10, the following relationship holds: p₁≧L₁, and p₁ is a natural number.

Similarly, a check matrix H_(QC) ^((a)) is defined as follows.

[Equation 65]

H _(QC) ^((a))=(I(p _(j,l) ^((a))))_(0≦j≦J−1,0≦j≦L) ₂ ⁻¹

0≦p _(a) ≦L _(a)−1   (40)

Furthermore, the check matrix H_(QC) ^((a)) has a girth satisfying g≧10, the following relationship holds: p_(a)≧L_(a), and p_(a) is a natural number.

Next, generate a plurality of matrices H_(QC) ^((i))=(I(p_(j,r) ^((i)) ^((i)))), i=2, 3, . . . which do not include two or more identical columns from the check matrix H_(QC) ^((a)) given by the equation (40).

Moreover, a new check matrix H_(QC) ^((1,2,3, . . . )) is defined as follows.

H _(QC) ^((1,2, . . . ))=(I(p _(j,l) ^((1,2, . . . ))))_(0≦j≦J=1,0≦l≦L−1) , p=p ₁ p ₁   [Equation 66]

Furthermore, the following equation (41) is defined for

0≦j≦J−1, 0≦q≦L ₁−1, 0≦r ⁽²⁾ ≦L ₂−1, 0≦r ⁽³⁾ ≦L ₃−1, and . . .

$\begin{matrix} \left\lbrack {{Equtaion}\mspace{14mu} 67} \right\rbrack & \; \\ {p_{j,\hat{l}} = \left\{ {\begin{matrix} {{p_{j,q}^{(1)}p_{a}} + p_{j,r^{(2)}}^{(2)}} & {{{{if}\mspace{14mu} q} = 0},} \\ {{p_{j,q}^{(1)}p_{a}} + p_{j,r^{(3)}}^{(3)}} & {{{{if}\mspace{14mu} q} = 1},} \\ {{p_{j,q}^{(1)}p_{a}} + p_{j,r^{(4)}}^{(4)}} & {{{{if}\mspace{14mu} q} = 2},} \\ \vdots & {\vdots \mspace{14mu}.} \end{matrix}{where}} \right.} & (41) \\ {\hat{l} = \left\{ \begin{matrix} {{qL}_{2} + r^{(2)}} & {{{{if}\mspace{14mu} q} = 0},} \\ {{qL}_{3} + r^{(3)}} & {{{{if}\mspace{14mu} q} = 1},} \\ {{qL}_{4} + r^{(4)}} & {{{{if}\mspace{14mu} q} = 2},} \\ \vdots & {\vdots \mspace{14mu}.} \end{matrix} \right.} & (42) \end{matrix}$

Also in the combination shown by [Equation 58 ], this H_(QC) ^((1,2,3, . . . )) can satisfy the equation (34) and has a girth satisfying g≧10.

Next, an example will be shown.

$\begin{matrix} {{H_{QC}^{(1)} = {H_{QC}^{(a)} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(2)} & {I(3)} \\ {I(0)} & {I(6)} & {I(14)} \end{bmatrix}}},{p_{1} = {p_{a} = 23}},{L_{1} = {L_{a} = 3.}}} & \left\lbrack {{Equation}\mspace{14mu} 68} \right\rbrack \end{matrix}$

Furthermore, the following matrices are formed, as the plurality of matrices which do not include two or more identical columns, by using H_(QC) ^((a))

${H_{QC}^{(1)} = \begin{bmatrix} {I(0)} & {I(0)} \\ {I(0)} & {I(2)} \\ {I(0)} & {I(6)} \end{bmatrix}},{H_{QC}^{(3)} = \begin{bmatrix} {I(0)} & {I(0)} \\ {I(0)} & {I(3)} \\ {I(0)} & {I(14)} \end{bmatrix}},{H_{QC}^{(4)} = \begin{bmatrix} {I(0)} & {I(0)} \\ {I(2)} & {I(3)} \\ {I(6)} & {I(14)} \end{bmatrix}},{L_{2} = {L_{3} = {L_{4} = 2.}}}$

The following check matrix is farmed by using these matrices.

${H_{QC}^{({1,2,3,4})} = \begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & {I(0)} & {I(0)} \\ {I(0)} & {I(2)} & {I(46)} & {I(49)} & {I(71)} & {I(72)} \\ {I(0)} & {I(6)} & {I(138)} & {I(152)} & {I(328)} & {I(336)} \end{bmatrix}},{p = {{p_{1}p_{a}} = {{23*23} = 529.}}}$

This check matrix H_(QC) ^((1,2,3,4)) has a girth satisfying g≧10.

Hereinafter, the processes which are the same as those in the designing methods for g≧6 and g≧8.

The following check matrix H _(QC) ^((1,2,3,4)) also has a girth satisfying g≧10.

${\overset{\_}{H}}_{QC}^{({1,2,3,4})} = {\begin{bmatrix} {I(0)} & {I(0)} & {I(0)} & {I(0)} & {I(0)} & {I(0)} & 0 & 0 \\ {I(2)} & {I(46)} & {I(49)} & {I(71)} & {I(72)} & {I(0)} & {I(0)} & 0 \\ {I(6)} & {I(138)} & {I(152)} & {I(328)} & {I(336)} & 0 & {I(0)} & {I(0)} \end{bmatrix}.}$

Embodiment 5

In above-mentioned Embodiments 1 to 3, the example in which the transmitter 1 and the receiver 2 are connected to each other via the channel 3 is shown. As an alternative, the transmitter 1 and the receiver 2 can be connected to each other via a radio channel.

FIG. 5 shows an example in which a mobile terminal 100 a base station 200 are connected to each other via a radio channel. Each of the mobile terminal 100 and the base station 200 is provided with a transmitter 1 (an LDPC encoder 11 and a modulator 12) and a receiver 2 (a demodulator 21 and an LDPC decoder 22).

Reference numeral 101 denotes an antenna of the mobile terminal 100, and reference numeral 201 denotes an antenna of the base station 200.

For example, when the mobile terminal 100 transmits data to the base station 200, the LDPC encoder 11 of the mobile terminal 100 generates a codeword from the data which is the target for transmission (encodes the data in units of a packet), and the modulator 12 of the mobile terminal 100 modulates the codeword and sends out the modulated signal onto a radio channel via the antenna 101, in the same way that those in accordance with each of above-mentioned Embodiments 1 and 2 do.

When the antenna 201 receives the modulated signal (the signal including an error occurring during transmission via the radio channel) transmitted from the mobile terminal 100, the demodulator 21 of the base station 200 demodulates the modulated signal to output the codeword to the LDPC decoder 22.

When receiving the codeword from the demodulator 21, the LDPC decoder 22 of the base station 200 carries out the same decoding processing as that in each of above-mentioned Embodiments 1 and 2 so as to decode the codeword into the data which is the target for transmission and then transfer this data to a communication destination not shown via a network.

When decoding the codeword into the data which is the target for transmission, the LDPC decoder 22 performs an error correction on the data in units of a packet and notifies whether it has succeeded in performing the error correction to an upper layer.

In contrast, in a case in which the base station 200 transmits data to the mobile terminal 100, when receiving the data which is the target for transmission from a sender not shown, the LDPC encoder 11 of the base station 200 generates a codeword from the data which is the target for transmission (encodes the data in units of a packet), the modulator 12 of the base station 200 modulates the codeword and sends out the modulated signal onto the radio channel via the antenna 201, in the same way that that according to each of above-mentioned Embodiments 1 and 2 does.

When the antenna 101 receiving the modulated signal (the signal including an error occurring during transmission via the radio channel) transmitted from the base station 200, the demodulator 21 of the mobile terminal 100 demodulates to the modulated signal and outputs the codeword to the LDPC decoder 22.

When receiving the codeword from the demodulator 21, the LDPC decoder 22 of the mobile terminal 100 carries out the same decoding processing as that in each of above-mentioned Embodiments 1 and 2 so as to decode the codeword into the data which is the target for transmission.

When decoding the codeword into the data which is the target for transmission, the LDPC decoder 22 performs an error correction on the data in units of a packet and notifies whether it has succeeded in performing the error correction to an upper layer.

INDUSTRIAL APPLICABILITY

As mentioned above, in the check matrix generating device, the check matrix generating method, the encoder, the transmitter, the decoder, and the receiver in accordance with the present invention, when generating a regular quasi-cyclic matrix, the quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and the other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices arranged in a specific row differ from one another. Therefore, the present invention is suitable, as an encoding system, for use in a check matrix generating device, a check matrix generating method, an encoder, a transmitter, a decoder, a receiver, and so on in a communications system which uses LDPC codes. 

1. A check matrix generating device provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, and a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, characterized in that said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
 2. The check matrix generating device according to claim 1, characterized in that in a case in which the number of cyclic permutation matrices arranged in the row direction is J and the number of cyclic permutation matrices arranged in the column direction is L, when J is equal to or larger than L, p which is a size of each cyclic permutation matrix is equal to or larger than J, a cyclic permutation matrix with j rows and l columns is p_(j,l)=j·(p_(1,l)(mod p)) for each cyclic permutation matrix, the quasi-cyclic matrix generating means generates the quasi-cyclic matrix in which all cyclic permutation matrices p_(1,l) differ from one another in each column at 0≦p_(1,l)≦p−1.
 3. The check matrix generating device according to claim 1, characterized in that in a case in which the quasi-cyclic matrix generating means places a zero matrix at a 0th row, the number of cyclic permutation matrices arranged in the row direction is J and the number of cyclic permutation matrices arranged in the column direction is L+1, when J is equal to or larger than L+1, p which is a size of each cyclic permutation matrix is equal to or larger than J, a cyclic permutation matrix with j rows and l columns is p_(j,l)=j·(p_(1,l)(mod p)) for each cyclic permutation matrix, the quasi-cyclic matrix generating means generates the quasi-cyclic matrix in which all cyclic permutation matrices p_(1,l) differ from one another in each column at 0≦p_(1,l)≦p−1.
 4. The check matrix generating device according to claim 1, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2)), as the regular quasi-cyclic matrix, from a p₁J×p₁L₁ check matrix H_(QC) ⁽¹⁾ whose girth is six or more and a p₂J×p₂L₂ check matrix H_(QC) ⁽²⁾ whose girth is six or more.
 5. The check matrix generating device according to claim 4, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2,3)), as the regular quasi-cyclic matrix, from a p₃J×p₃L₃ check matrix H_(QC) ⁽³⁾ whose girth is six or more and the check matrix H_(QC) ^((1,2)).
 6. The check matrix generating device according to claim 5, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2,3,4,5,6, . . . )) as the regular quasi-cyclic matrix, from a p_(k)J×p_(k)L_(k) check matrix H_(QC) ^((k)) (k=4, 5, 6, . . . ) whose girth is six or more and the check matrix H_(QC) ^((1,2,3)).
 7. The check matrix generating device according to claim 1, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2)), as the regular quasi-cyclic matrix, from a p₁J×p₁L₁ check matrix H_(QC) ⁽¹⁾ whose girth is eight or more and a p₂J×p₂L₂ check matrix H_(QC) ⁽²⁾ whose girth is eight or more.
 8. The check matrix generating device according to claim 7, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2,3)), as the regular quasi-cyclic matrix, from a p₃J×p₃L₃ check matrix H_(QC) ⁽³⁾ whose girth is eight or more and the check matrix H_(QC) ^((1,2)).
 9. The check matrix generating device according to claim 8, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2,3,4,5,6, . . . )), as the regular quasi-cyclic matrix, from a p_(k)J×p_(k)L_(k) check matrix H_(QC) ^((k)) (k=4, 5, 6, . . . ) whose girth is eight or more and the check matrix H_(QC) ^((1,2,3)).
 10. The check matrix generating device according to claim 1, characterized in that the quasi-cyclic matrix generating means configures a check matrix H_(QC) ^((1,2)), as the regular quasi-cyclic matrix, from a p₁J×p₁L₁ check matrix H_(QC) ⁽¹⁾ whose girth is ten or more and a p₂J×_(p) ₂L₂ check matrix H_(QC) ⁽²⁾ whose girth is ten or more, and, when configuring said check matrix H_(QC) ^((1,2)), masks matrices other than a submatrix on a left side having a same size as said check matrix H_(QC) ⁽²⁾.
 11. The check matrix generating device according to claim 10, characterized in that the quasi-cyclic matrix generating means searches for a cyclic permutation matrix I(p_(j,l)) which satisfies a condition that a girth is ten or more in a zero matrix within the check matrix H_(QC) ^((1,2)).
 12. A check matrix generating method including a quasi-cyclic matrix generating step of a quasi-cyclic matrix generating means arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating step of a mask matrix generating means generating a mask matrix which can adapt to a plurality of coding rates, a masking step of a masking means converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, and a parity check matrix generating step of a parity check matrix generating means placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, characterized in that said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
 13. An encoder provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, and a codeword generating means for generating a codeword from a message which is a transmission object by using the parity check matrix generated by said parity check matrix generating means, characterized in that said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
 14. A transmitter provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, a codeword generating means for generating a codeword from a message which is a transmission object by using the parity check matrix generated by said parity check matrix generating means, and a modulating means for modulating the codeword generated by said codeword generating means to transmit a modulated signal, characterized in that said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
 15. A decoder provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, and a decoding means for decoding a codeword generated by an encoder into a message by using the parity check matrix generated by said parity check matrix generating means, characterized in that said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
 16. A receiver provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J≦1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, a demodulating means for receiving a modulated signal transmitted from a transmitter, and for demodulating said modulated signal to output a codeword, and a decoding means for decoding the codeword outputted from said demodulating means into a message by using the parity check matrix generated by said parity check matrix generating means, characterized in that said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+p_(j,l)) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
 17. A check matrix generating device characterized in comprising: a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(p_(j,l)) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(p_(j,l)) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights; a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates; a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix; and a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code. 